package com.example.conf.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 商品表
 * </p>
 *
 * @author wpdcn
 * @since 2020-03-06
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("shop_good")
public class ShopGoodEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @Column(comment = "主键id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 运费模板
     */
    @Column(comment = "运费模板")
    private Long freightTemplateId;

    /**
     * 商品类别：1积分商品；2物业商品；3线上商品；4门店商品
     */
    @Column(comment = "商品类别：1积分商品；2物业商品；3线上商品；4门店商品")
    private Integer type;

    /**
     * 商品所属账户id
     */
    @Column(comment = "商品所属账户id")
    private Long accountId;

    /**
     * 商品名称
     */
    @Column(comment = "商品名称")
    private String name;

    /**
     * 商品一级类目
     */
    @Column(comment = "商品一级类目")
    private Long categoryFirst;

    /**
     * 商品二级类目
     */
    @Column(comment = "商品二级类目")
    private Long categorySecond;

    /**
     * 商品三级类目
     */
    @Column(comment = "商品三级类目")
    private Long categoryThird;

    /**
     * 推荐商品标志：1-是；0-否
     */
    @Column(comment = "推荐商品标志：1-是；0-否")
    private String recommendFlag;

    /**
     * 商品库存
     */
    @Column(comment = "商品库存")
    private Integer stock;

    /**
     * 商品单价
     */
    @Column(comment = "商品单价")
    private Double price;

    /**
     * 商品积分价值
     */
    @Column(comment = "商品积分价值")
    private Double scoreValue;

    /**
     * 商品详情
     */
    @Column(comment = "商品详情")
    private String details;

    /**
     * 创建人
     */
    @Column(comment = "创建人")
    private Long createBy;

    /**
     * 创建时间
     */
    @Column(comment = "创建时间")
    private LocalDateTime createTime;

    /**
     * 修改人
     */
    @Column(comment = "修改人")
    private Long updateBy;

    /**
     * 修改时间
     */
    @Column(comment = "修改时间")
    private LocalDateTime updateTime;

    /**
     * 状态：0申请上架中；1已上架；2已下架
     */
    @Column(comment = "状态：0申请上架中；1已上架；2已下架")
    private String status;

    /**
     * 规格类型：0-标准规格；1-多规格
     */
    @Column(comment = "规格类型：0-标准规格；1-多规格")
    private String attrType;

    /**
     * 拒绝原因
     */
    @Column(comment = "拒绝原因")
    @TableField(exist = false)
    private String reason;

    /**
     * 分店id
     */
    @Column(comment = "分店id")
    private String subStoreIds;

    /**
     * 配送方式：1自提；2快递
     */
    @Column(comment = "配送方式：1自提；2快递")
    private String deliveryMethod;

    /**
     * 销量
     */
    @Column(comment = "销量")
    private Integer salesVolume;

    /**
     * 运费
     */
    @Column(comment = "运费")
    private Double expressFee;

    /**
     * 商品锁定标志：0-未锁定；1-已锁定
     */
    @Column(comment = "商品锁定标志：0-未锁定；1-已锁定")
    private String lockFlag;

    /**
     * 技工服务费提成率
     */
    @Column(comment = "技工服务费提成率")
    private Double mechanicFeeRate;

    /**
     * 保修说明
     */
    @Column(comment = "保修说明")
    private String guaranteeRemark;

    /**
     * 保修时间
     */
    @Column(comment = "保修时间")
    private String guaranteeTime;

    /**
     * 一级积分率
     */
    @Column(comment = "一级积分率")
    private Double firstScoreRate;

    /**
     * 二级积分率
     */
    @Column(comment = "二级积分率")
    private Double secondScoreRate;

    /**
     * 三级积分率
     */
    @Column(comment = "三级积分率")
    private Double thirdScoreRate;
}
